import json
from ApiAutoTestFrameWork_25.api.test_login_Api import LoginApi
from ApiAutoTestFrameWork_25.config import BASE_DIR

"""
通用工具类
"""


class CommonUtil(object):
    # 断言方法工具类
    @classmethod
    def assert_util(cls, self, resp, status_code, success, code, message):
        self.assertEqual(status_code, resp.status_code)
        self.assertEqual(success, resp.json().get("success"))
        self.assertEqual(code, resp.json().get("code"))
        self.assertIn(message, resp.json().get("message"))

    # 获取json文件数据工具类
    """
    1.新建方法接收，调用者传来的json文件路径
    2.读取文件
    3.新建变量保存读取数据
    4.处理数据，使之成为[(),()]格式
    5.返回处理好的数据
    """
    @classmethod
    def build_data_util(cls, file_path):
        with open(file_path, encoding="utf8") as f:
            json_data = json.load(f)
            case_data = []
            for data in json_data:
                tmp = tuple(data.values())
                case_data.append(tmp)
            # print(case_data)
            return case_data

    # 新令牌获取工具类
    """
    1.配置数据
    2.调用登录方法，保存返回数据
    3.获取并拼接令牌数据
    4.请求头字典保存令牌
    5.返回请求头
    """
    @classmethod
    def get_header(cls):
        json_data = {"mobile": "13800000002", "password": "123456"}
        resp = LoginApi.login(json_data)
        token = "Bearer " + resp.json().get("data")
        header = {"Authorization": token}
        return header


if __name__ == '__main__':
    # CommonUtil.get_header()
    # file_modify_path = BASE_DIR + "/data/query_emp.json"
    file_modify_path = BASE_DIR + "/data/modify_emp.json"
    CommonUtil.build_data_util(file_modify_path)




